ChatGPT_ACCESS_TOKEN = // OpenAI 的 API token keys
CHANNEL_ACCESS_TOKEN = // 你的 line bot token
function doPost(e) {
//從接收到的訊息中取出 replyToken 和發送的訊息文字資訊
var msg = JSON.parse(e.postData.contents);
var replyToken = msg.events[0].replyToken;
var type = msg.events[0].type;
var userid = msg.events[0].source.userId;
var groupid = msg.events[0].source.groupId;
// 只接收純文字的訊息
if (type == 'message' && msg.events[0].message.text != null) {
var userMessage = msg.events[0].message.text;
}
else { return 0 }
// 幫使用者輸入的文字後面加入結束字元
send_msg = userMessage + "###"
// 雖然這樣會消耗很多的 token 數,但經過我測試,這樣比起調高 max_tokens 還可以更快的得到 API 的回覆答案
// 重複的向 GPT API 傳送訊息,直到沒有接收到任何東西(這樣即可突破 4000 token 的限制)
do {
response = chatGPT_api(send_msg)
receive_msg = JSON.parse(response.getContentText())["choices"][0]["text"]
send_msg = send_msg + receive_msg
check_end = receive_msg.length == 0
console.log(send_msg)
} while (!check_end)
// 把訊息過篩不需要的換行字元後用LINE傳回給使用者
reply = send_msg.replace(userMessage, "").replace("###", "")
console.log(reply)
while (reply[0] == "\n") { reply = reply.replace("\n", "") }
reply_message(replyToken, [{ 'type': 'text', 'text': reply }])
// reply_message(replyToken, reply_flex(reply)) // 預留使用flex傳送訊息的程式碼
}
// 可以自行改動各項參數
function chatGPT_api(message) {
return UrlFetchApp.fetch('https://api.openai.com/v1/engines/text-davinci-003/completions', {
'method': 'post',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + ChatGPT_ACCESS_TOKEN,
},
'payload': JSON.stringify({
temperature: 0.9,
max_tokens: 256,
top_p: 1,
frequency_penalty: 2,
presence_penalty: 0.6,
prompt: message,
stop: ["###"],
}),
})
}
全部都是
這光頭歪國人他教我的
How to create GPT-3 apps in Google Sheets – Free Tutorial
另外當初在做的時候也有看到其他有趣的創作者,給大家參考
- 國內大神 memochou1993 做的超強 LINE BOT (這四篇必看)
GPT AI Assistant
[ 分享 ] 如何創建類似 ChatGPT 的 Line Bot 聊天機器人 !
[ 分享 ] 真的是 ChatGPT ! Line Bot 4.0 聊天機器人升級版 !
快速建立AI + LINEBOT 聊天機器人 【GPT + Linebot串接】 [免寫程式]- 國外大神 Debug 神器
ChatGPT Adrenaline- 無痛使用 ChatGPT (不受 API KEY 限制)
Lightweight version of ChatGPT
C# 無痛使用 ChatGPT- 其他應用
如何開發一個「LINE Bot 群組聊天摘要生成器」
若以上有任何的錯誤都歡迎留言跟我說
我會非常感謝你的(ノ>ω<)ノ
(1) 介紹 ChatGPT & GPT-3
(2) 玩壞 ChatGPT LINE BOT
(3) 創建屬於自己的 ChatGPT LINE BOT
(4) 來人啊~ 上程式碼 啦~~
(5) 同場加映:介紹 Hugging Face 及 Meta AI BlenderBot
(6) 同場加映:Hugging Face 串接 LINE BOT
(7) 同場加映:用 Python & Google Apps Script 玩 Hugging Face
接案 (☛´∀`*)☛ LINE ID:albert20699
HI 感謝你的分享 我試圖用您的code複製一份 聊天機器人
但是我不太確定為何無法順利運行
個別在doPost 跟reply_message出現Request failed for https://api.line.me returned code 400.
我想請教該如何修正?再次感謝您的分享
會出現reply_message上面的問題應該是CHANNEL_ACCESS_TOKEN沒有設定正確或是reply_message的url網址錯誤,可以先嘗試看看單純的傳送簡單訊息看看,看是line的程式碼問題還是openai程式碼問題
https://ithelp.ithome.com.tw/articles/10309771/再推銷一下自己的文章